package com.baba.vote.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * @author moxinHuoHuo
 * @create 2020/1/30 下午11:46
 */
@Configuration
public class CorsConfig {

  /**
   * 跨域配置
   */
  public CorsConfig() {
  }

//  @Bean
//  public CorsFilter corsFilter() {
//    // 1. 添加cors配置信息
//    CorsConfiguration config = new CorsConfiguration();
//    // 设置允许跨域的地址
//    config.addAllowedOrigin("https://linyudi.easy.echosite.cn");
//    // 全部的意思
////    config.addAllowedOrigin("*");
//
//    // 设置是否发送cookie信息
//    config.setAllowCredentials(true);
//
//    // 设置允许请求的方式
//    config.addAllowedMethod("*");
//
//    // 设置允许的header
//    config.addAllowedHeader("*");
//
//    // 2. 为url添加映射路径
//    UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
//    // 所有的路径进行映射
//    corsSource.registerCorsConfiguration("/**", config);
//
//    // 3. 返回重新定义好的corsSource
//    return new CorsFilter(corsSource);
//  }

  @Bean
  public CorsFilter corsFilter() {
    final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
    final CorsConfiguration corsConfiguration = new CorsConfiguration();
    /*是否允许请求带有验证信息*/
    corsConfiguration.setAllowCredentials(true);
    /*允许访问的客户端域名*/
    corsConfiguration.addAllowedOrigin("*");
    /*允许服务端访问的客户端请求头*/
    corsConfiguration.addAllowedHeader("*");
    /*允许访问的方法名,GET POST等*/
    corsConfiguration.addAllowedMethod("*");
    urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
    return new CorsFilter(urlBasedCorsConfigurationSource);
  }

}
